Сегодня поговорим про разницу между IServer (интерфейс) и AServer (абстрактный класс) внутри Os Engine. Зачем они в проекте и как появились?
Это часть серии постов «Коннекторы к OsEngine», в которой мы с нашими читателями учимся быть не просто алготрейдерами, но и настоящими программистами, а многие из них станут ими, навсегда, изменив свою жизнь к лучшему. Пролетарии СмартЛаба, присоединяйтесь!
Упрощённая схема работы с конечной реализацией сервера из любого робота в OsEngine:
1 IServer.
IServer – интерфейс для доступа к реализациям серверов почти во всём проекте. Нужен для того, чтобы унифицировать методы и свойства, нужные для роботов и OsData.
Проект OsEngine открытый и публичный. Так вышло, что многие его части писали разные люди. И дальше будет больше кода, написанного разными людьми.
Разные люди пишут код совершенно по-разному. Если Вы читаете это до того, как стали «крутым» программистом, возможно это звучит странно, но поверьте, всегда есть от 10 до 100 способов справиться с задачей.
Данная серия постов, «стандарты написания кода», призывает всех тех, кто занимается созданием кода в проекте, соблюдать определённые правила.
Но прежде, чем начинать, давайте пройдёмся ещё раз по тому, как именно пишется наш проект. Чтобы Вы понимали, насколько это важно.
Как писалось ядро OsEngine.
Так же, как и у всех остальных подобных проектов, ядро OsEngine создавалось одним человеком.
Ядро это:
Москва… Никогда к ней не привыкну. Такая высокая, что здания уходят в облака. А из окон видно птиц и Воронеж… Трудно в этом признаваться, но я соскучился!
В субботу выезжаю на интеграцию проекта для наших дорогих нефтяников. Буду изучать Москва-сити дальше. В МСК от 7 до 10 дней. Надо бы собраться...
Чтобы не было никому обидно, сделаем это в один день, а то пить неделю я уже не смогу как раньше с каждым по отдельности. Во-первых, в завязке) Во-вторых, с супругой) В-третьих я старею (а это уже без шуток). Поэтому собираемся один раз. 9го числа и все вместе.
При этом как это не грустно, но это последняя наша встреча в таком формате. Шестая или восьмая уже, даже и не вспомню. Но точно последняя.
Мы из МитАпов давно уже выросли. Билеты щас закончатся минут за 20 я думаю (но это не точно). Да и мне сцену пора освобождать для других. Со следующего года только полноформатные конференции, где на сцене будут алго из сообщества. А я буду сидеть за сценой.
А это – наше прощание с холостяцкой жизнью) Мальчишник, если хотите, после чего будем переходить к более серьёзным форматам.
Вводная статья по архитектуре сервера в Os Engine. В ней мы поговорим про то, каким образом коннекторы используются в OsEngine глобально. Каким подсистемам они нужны.
Для этого будем подглядывать на первую картинку и смотреть в исходный код OsEngine.
1 ServerMaster
Кол-во участников в нашем Open Source сообществе растёт, что очень радует. Однако, уже сейчас точно понятно, что работать над коннекторами к OsEngine будут совершенно разные люди. И начинающие и суперпродвинутые.
При этом делать надо всё хорошо! Делать для себя, для начинающих алго, больших и маленьких. Делать надо от души!
А чтобы получилось у разных по подготовке людей и от души, что надо? Правильно!
Ввести демократию и всем вместе отменить правила!
Свод правил от человека, который в этом понимает.
Так Вы сможете быть уверенными в том, что делаете всё правильно. Так будут довольны пользователи.
И в этой статье поговорим о том, что надо будет сделать, чтобы сдать коннектор в OsEngine.
Задачи перед нами стоит две:
1) Сделать для OsEngine классные подключения, работающие.
2) Дать сообществу OsEngine стимул для роста. Чтобы люди из сообщества планомерно развились в этом процессе. Чтобы кто-то из них остался на поддержке. Кто-то стал программистом.
Из тех людей, которые будут делать коннекторы к OsEngine, мы соберём отдел разработки софта на заказ. Это произойдёт к осени / зиме 2024 года.
Минимум три человека нужны в этот отдел.
2022 год и связанные с этим «вынужденные» отъезды программистов за рубеж
Забрали мой отдел разработки софта на заказ целиком. Когда я это пишу, меня это очень печалит. Но Вам, когда Вы это читаете, должно быть от этого очень хорошо!
Как говорил наш Президент: «Сбежавшие всё потеряют, а те, кто остался, займут все ниши». Кажется, это сейчас и произойдёт.
Ведь в этот раз я решил наладить отдел разработки на удалёнке, и из тех, кто будет сейчас учиться делать коннекторы к OsEngine.
Проблема такая.
Так или иначе, обработка дорогостоящих заказов связана с изменением OsEngine или с написанием новых коннекторов. По факту, всего несколько человек из всего сообщества сейчас на это способны. И передать никуда никого из клиентов я не могу. Просто людям отказываю.
Летом 2024 года я выберу трёх людей из нашего сообщества, которые останутся на поддержке коннекторов к MOEX.
Попрошу заранее не обижаться на мой выбор. Будет как будет. Никакой демократии в этом вопросе я не приму. Единственное, что будет с гарантией:
ВАЖНО!!!
03.02.2024 произошли изменения. Убран из списка коннекторов Algo Pack от MOEX. Коннекторы которые нужно поддерживать перераспределены.
Набор коннекторов в поддержку № 1
Вознаграждение разработчику: 33 т.р. в месяц.
Набор коннекторов в поддержку № 2
Вознаграждение разработчику: 33 т.р. в месяц.
Набор коннекторов в поддержку № 3
В данном посте поговорим про бюджеты, которые у нас есть на разработку коннекторов к MOEX. Какой бонус можно получить, делая коннекторы для нашего Open Source проекта.
Прошу помнить, это не оплата и не зарплата и не выгода. Это – ДОНАТ и братская помощь от брокера АЛОР. Шлём им лучи поддержки!
1 Simba и FIFO Twime.
Делать не будем… Предлагаю быть друг с другом честными. Данные подключения не имеют смысла для терминала на СиШарп.
Оставим сразу про это разговоры. Данные подключения для С++, Линукс.
2 Algopack. (УБРАН!!! В пользу Тинькофф коннектора нового)
https://www.moex.com/ru/algopack
Бюджеты на Алго-Пак переходят к новому Тинькофф коннектору.
Бюджет: 60 т.р.
2 Fix Fast.
Здесь нужны все три площадки отдельно. Протокол хоть и один, но реализации будут существенно отличаться. Делать будем по самому сложному пути – все три реализации будут делать три разных человека, помогая друг другу в одной группе.
Камрады. Не знаю, как АЛОР мог на это пойти. Для брокера это — просто нонсенс.
Но для нашего сообщества сделано очень… Очень серьёзное исключение. Нам выделили высокопоставленных сотрудников, для консультации и отдельный чат. Ну а я, не в силах больше это скрывать, зову туда присоединиться весь СМАРТ-ЛАБ!
Для общения с нашим сообществом нам выделили:
Сам чатик находится здесь: https://t.me/alor_osengine_support
О чём можно спросить?
На данный момент поток MAIN в OsEngine практически никаких действий не предпринимает, в основном прорисовывает интерфейсы. Всю остальную работу делают другие потоки. Как стандартные Thread, так и более современные (но не везде необходимые) Task.
После прочтения всех книг и завершения курсов из серии «Коннекторы к OsEngine», у Вас обязательно уже сложилось своё представление обо всём этом. Но, если вдруг у Вас появится свободное время, можно уделить ещё неделю вопросу потоков. Для закрепления понимания того, как это устроено.
Мы устроили в нашем чатике небольшое обсуждение среди продвинутых программистов и подыскали для Вас несколько вариантов.
1 Книга Клири С. Конкурентность в C#: